package com.cn.wanxi.util;

import com.cn.wanxi.model.UserModel;
import com.cn.wanxi.service.UserService;
import com.cn.wanxi.service.impl.UserServiceImpl;

import java.util.List;

public class MyHelp {
    /**
     * 2021-3-26
     * 登录逻辑
     * 1.前端：
     *      1）复制登录页面，修改登录页面的css和js路径
     *      2）添加验证码html
     *      3）点击登录
     *          1）验证用户输入信息是否格式正确
     *          2）调用后台地址，利用ajax
     *          3）传递给后台的数据为json格式  对象格式
     *          4）用$("#id").val()
     *          5）将返回的数据根据不同的值反馈
     *
     * 2.后端：
     *      1）新建servlet类
     *          1）处理乱码问题
     *          2）用于接收前端传递的数据
     *          3）封装model
     *          4）调用service
     *          5）得到返回值
     *          6）将返回值转换成json格式返回页面
     *      2）服务逻辑层service
     *          1）处理逻辑关系
     *          2）判断验证码是否正确
     *          3）判断用户名和密码是否正确
     *          4）返回结果
     *      3）数据实现层 dao
     *          1）封装sql语句
     *          2）得到数据库的返回值
     *          3）遍历得到的数据
     *          4）根据遍历的数据返回model
     *      4）JDBC连接数据库
     *          1）加载驱动
     *          2）新建连接
     *          3）编译sql语句
     *          4）执行sql语句
     *          5）返回执行结果
     *
     *
     */
    /**
     * 2021-3-29
     * 1.欢迎页面和index页面的登录名
     * 2.查询页面   页面加载完成去执行里面的方法
     * 3.观察模板页面的数据展示方式
     * 4.字体图标的应用
     * 5.js的三元运算符运用
     * 6.删除数据
     * 7.新增 数据-- 拿到数据
     */
    /**
     * 2021-3-30
     * 增加和修改
     * 1.增加--
     *      后台代码编写
     * 2.修改
     *      1.点击修改时需要弹出页面  之前需要将当前的id传递到修改页面
     *      sessionStorage.setItem("userId", id);
     *      2.在修改页面需要加载完成时，根据id去查询所需要的数据
     *      3.对查询出的数据进行赋值
     *      4.注意：一定要刷新表单 form.render();
     *      5.对于修改密码和状态分别设置方法
     *      6.mysql的函数abs  count  max min
     * 3.模糊查询 ---
     *      1.js数据的接收
     *      2.servlet里面添加数据的接收和封装
     *      3.sql语句的拼接
     *      4.find_in_set函数
     */
    /**
     * 2021-3-31
     * 分页
     * 分页其实就是对sql语句的修改  需要curPage和pageSize；
     * 1.就是说需要对sql语句添加limit
     * 2.需要添加一个对象 pagemodel
     * 3.需要修改findAll代码
     * 前端代码：
     *  1.找到自己喜欢的分页样式
     *  2.添加分页的js
     *       1）layui.use(['laydate', 'form', "laypage"]
     *        2）var laypage = layui.laypage;
     *        //完整功能
     *         3）laypage.render({
     *             elem: 'page'
     *             , count: getCount()
     *             , layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip']
     *             , jump: function (obj) {
     *                 // console.log(obj.curr,obj.limit);
     *                 findAll(obj.curr,obj.limit);
     *                 // console.log("page")
     *             }
     *  3.取得总条数getCount，需要在后台单独写一个查询总条数的代码
     *  4.需要将以前页面价值完成的findAll()方法删掉，因为现在价值page的时候直接会去查询
     *  5.需要将第几页和每一页显示的条数传递给后台需要的data数据
     *
     *
     * 动态赋值
     * 自己查资料
     */

    /**
     * 2021-4-1
     * 文件上传
     * 1.加载jar包
     * 2.修改样式 https://www.layui.com/doc/modules/upload.html
     * 3.添加js    var uploadInst = upload.render({
     * 4.创建接口/upload
     * 5.编写IO流代码Upload 最重要的是文件夹和文件名的创建
     * 6.将最终的路径发送给前台 req.setAttribute("url", derectory + fileName);
     * 7.前端得到路径和其他数据，通过ajax从新进入后台进行产品的增加
     *
     */
    /**
     * 2021-4-6
     * 富文本
     * 1.引入js   wangEditor.min.js
     * 2.在页面写一个div   定义一个id
     * 3.写创建富文本的js
     * const E = window.wangEditor;
     * const editor = new E('#content');
     * editor.create();
     * 3.设置后台服务的接口  editor.customConfig.uploadImgServer = '/upload';
     * 4.设置本地上传 editor.customConfig.withCredentials = true;
     * 5. 将上传后的图片进行回显到富文本  insertImg(url)//回显到富文本里面
     * 6.得到值 editor.txt.html();
     * 7.赋值： editor.txt.html(data.content);
     * 8.后台保存图片时：需要将文件保存到out文件和web下面
     */
//    public static void main(String[] args) {
//        final int[] a = {0};
//
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                int b = 9;
//                a[0] = b;
//            }
//        }).start();
//        System.out.println(a[0]);
//    }
/**
 * 2021-4-7
 * sessin认证
 * 前端：只要是需要判断是否登录的页面都需要去判断是否已经登录x-isLogin.js
 * 后台：过滤器：判断是否登录  如果没有登录，则返回json数据，如果已经登录则放行
 *   filterChain.doFilter(servletRequest, servletResponse);
 * @WebFilter("/back/*") 需要验证的路径
 * @WebFilter({"/back/*", "/aa/*", "/bc/*"})
 *
 * 最终都要判断是否跳转，是否跳转都在前端js判断
 * jsonObject.put("result", "notLogin");
 */
/**
 * 2021-4-12
 * redis
 * 1.下载redis软件   安装
 * 2.把redis安装到服务里面去
 * 3.下载redis的jar包，桌面管理软件
 * 4.redis的数据类型   五种   String  list  hash  set  sorted set
 * 5.Jedis jedis = new Jedis();  String  list  增加  修改    删除   查询
 * 6.注意：每一次管理员对数据进行更新 时，需要将所有的key值删除
 * 7.以后可能不会再数据更新的同时直接更新redis，而是在某一个特定的时间更新   定时任务
 *
 */
/**
 * 2021-4-14
 * 线程
 * 1.线程和进程的关系
 * 2.实现方式
 * 3.设置线程名称
 * 4.得到线程对象
 * 5.优先级
 * 6.例子  为什么会出现错误？-1
 * 7.锁   锁方法  锁对象
 * 8.死锁
 */
/**
 * 2021-4-15
 * json
 * 生产者和消费者模型
 * 定时器
 * 线程的生命周期
 * jsp修改为html的格式
 * 注意：很多时候拿不到值，时因为html价值的时间或者价值的顺序有问题
 * 将公共部分提起出来
 */
}
